AJAX Calls তৈরি করা এবং ডেটা পাঠানো

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter এর AJAX Integration |

AJAX (Asynchronous JavaScript and XML) হল একটি প্রযুক্তি যা ওয়েব পেজের অংশগুলির মধ্যে ডেটা বিনিময় করতে ব্যবহার হয়, যেখানে পেজ রিফ্রেশ করার প্রয়োজন পড়ে না। CodeIgniter ব্যবহার করে আপনি সহজে AJAX কল তৈরি করতে এবং ডেটা পাঠাতে পারেন। এখানে CodeIgniter এবং jQuery এর মাধ্যমে AJAX কল তৈরি এবং ডেটা পাঠানোর প্রক্রিয়া দেখানো হয়েছে।


১. jQuery দিয়ে AJAX কল তৈরি

AJAX কলের জন্য সাধারণত jQuery ব্যবহার করা হয়, যা ক্লায়েন্ট সাইডের স্ক্রিপ্ট হিসেবে কাজ করে।

১.১. Controller তৈরি

প্রথমে একটি Controller তৈরি করুন, যা AJAX কল গ্রহণ করবে এবং ডেটা প্রক্রিয়া করবে।

namespace App\Controllers;

use CodeIgniter\Controller;

class AjaxController extends Controller {
    // AJAX কল দ্বারা প্রাপ্ত ডেটা প্রক্রিয়া করা
    public function getData() {
        // AJAX থেকে প্রাপ্ত ডেটা
        $name = $this->request->getPost('name');
        $email = $this->request->getPost('email');

        // ডেটা প্রসেস করা (যেমন, ডাটাবেসে সংরক্ষণ)
        $data = [
            'name' => $name,
            'email' => $email
        ];

        // ডেটা রিটার্ন করা
        return $this->response->setJSON($data);
    }
}

১.২. Routes কনফিগারেশন

app/Config/Routes.php ফাইলে এই Controller এর রাউট কনফিগার করুন:

$routes->post('ajax/getdata', 'AjaxController::getData');

১.৩. View তৈরি (HTML এবং jQuery ব্যবহার)

AJAX কল করতে একটি ফর্ম এবং jQuery ব্যবহার করে ফাইল তৈরি করুন।

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AJAX Example</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

    <h1>AJAX Example in CodeIgniter</h1>

    <form id="myForm">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name"><br><br>

        <label for="email">Email:</label>
        <input type="email" id="email" name="email"><br><br>

        <button type="submit">Submit</button>
    </form>

    <div id="response"></div>

    <script>
        $(document).ready(function() {
            $("#myForm").on("submit", function(e) {
                e.preventDefault();

                var name = $("#name").val();
                var email = $("#email").val();

                $.ajax({
                    url: '<?= site_url('ajax/getdata') ?>', // AJAX URL
                    type: 'POST',
                    data: {
                        name: name,
                        email: email
                    },
                    success: function(response) {
                        // সফল হলে, response প্রদর্শন করুন
                        var data = JSON.parse(response);
                        $('#response').html("Name: " + data.name + "<br>Email: " + data.email);
                    },
                    error: function() {
                        $('#response').html('Error occurred');
                    }
                });
            });
        });
    </script>

</body>
</html>

১.৪. কোড ব্যাখ্যা:

  • AJAX কল:
    • ফর্মটি সাবমিট করলে $.ajax() ফাংশন কল হবে।
    • url: এটি AJAX কলের URL যেখানে ডেটা পাঠানো হবে।
    • data: ফর্মের ডেটা name এবং email এখানে পাঠানো হচ্ছে।
    • success: ডেটা সফলভাবে পাঠানো হলে, সার্ভার থেকে রেসপন্স পাওয়া যাবে। এখানে JSON রেসপন্সের মাধ্যমে নাম এবং ইমেইল দেখানো হচ্ছে।
    • error: যদি কোনো সমস্যা ঘটে, তাহলে Error occurred দেখানো হবে।

২. CodeIgniter-এ JSON ডেটা রিটার্ন করা

এটা নিশ্চিত করতে হবে যে, সার্ভার থেকে সঠিকভাবে JSON ডেটা রিটার্ন হচ্ছে। CodeIgniter এ JSON ডেটা রিটার্ন করতে response->setJSON() ফাংশন ব্যবহার করতে হয়, যা আপনি Controller এ আগে দেখেছেন।

return $this->response->setJSON($data);

এটি ক্লায়েন্ট সাইডে JSON ডেটা পাঠাবে, যা আপনি AJAX কলের success ফাংশনে ব্যবহার করতে পারবেন।


৩. AJAX Error Handling এবং Validation

AJAX কলের সময় যদি কিছু ভুল হয়, তবে আপনি ক্লায়েন্ট সাইডে ভাল error handling করতে পারেন। উদাহরণস্বরূপ, ফর্ম ভ্যালিডেশন করা:

public function getData() {
    $validation = \Config\Services::validation();

    // ইনপুট যাচাই
    $validation->setRules([
        'name' => 'required|min_length[3]',
        'email' => 'required|valid_email'
    ]);

    if (!$validation->withRequest($this->request)->run()) {
        return $this->response->setJSON(['error' => $validation->getErrors()]);
    }

    $name = $this->request->getPost('name');
    $email = $this->request->getPost('email');

    $data = ['name' => $name, 'email' => $email];
    return $this->response->setJSON($data);
}

এতে ফর্মে কোন ইনপুট ভুল হলে, আপনি validation errors পাঠাতে পারেন।


৪. AJAX কলের মাধ্যমে ডেটা পাঠানো এবং রিটার্ন করা

এটা ক্লিয়ার করতে হবে যে, AJAX এর মাধ্যমে পাঠানো ডেটা কীভাবে প্রসেস করা হচ্ছে এবং সার্ভার থেকে কীভাবে রেসপন্স ফিরে আসছে।

$.ajax({
    url: '<?= site_url('ajax/getdata') ?>',
    type: 'POST',
    data: {
        name: name,
        email: email
    },
    success: function(response) {
        if(response.error) {
            // ভুল হলে ত্রুটি দেখান
            $('#response').html('Error: ' + response.error.name);
        } else {
            // ডেটা সফলভাবে পাঠানো হলে, তা রিটার্ন করুন
            $('#response').html("Name: " + response.name + "<br>Email: " + response.email);
        }
    },
    error: function() {
        $('#response').html('Error occurred');
    }
});

সারাংশ

AJAX কলের মাধ্যমে CodeIgniter-এ ডেটা পাঠানো এবং রিটার্ন করা খুব সহজ। $.ajax() ব্যবহার করে আপনি সার্ভারে ডেটা পাঠাতে পারেন এবং সেই ডেটাকে JSON রেসপন্স হিসেবে রিটার্ন করতে পারেন। CodeIgniter এর Validation ফাংশন ব্যবহার করে ডেটা যাচাই করা এবং response->setJSON() ব্যবহার করে JSON রিটার্ন করা হয়। AJAX এর মাধ্যমে ফর্ম ডেটা পাঠানোর সময় সার্ভারের ত্রুটি বা সফলতা খুব সহজেই ক্লায়েন্ট সাইডে প্রদর্শন করা যায়।

Content added By
Promotion